﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace SICON_INT.PaginasWebs
{
    public partial class frm_usuarios : System.Web.UI.Page
    {
        /// <summary>
        /// The form accion
        /// </summary>
        static string FormAccion = "";
        /// <summary>
        /// The mensaje error
        /// </summary>
        public string MensajeError = "";
        /// <summary>
        /// The codigo
        /// </summary>
        static int codigo = 0;
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (Session["FormAccion"] != null)
                {
                    FormAccion = Session["FormAccion"].ToString();

                }


                if (Session["Codigo"] != null)
                {
                    codigo = Convert.ToInt32(Session["Codigo"]);

                }


                if (!IsPostBack)
                {
                    Cargar_Combos();
                    dlEstadoUsuario.SelectedValue = "1";
                    dlPuesto.SelectedValue = "1";
                    if (FormAccion == "Editar")
                    {
                        if (codigo != 0)
                        {
                            CargarEditar();
                        }
                    }

                }

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
        }

        private void CargarEditar()
        {
            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            WSGestion.MOD_Usuarios objUsuario = new WSGestion.MOD_Usuarios();
            objUsuario = wsgest.SEL_UsuarioByID(codigo);
            txtNombreusuario.Value = objUsuario.USU_nombre;
            txtPrimerApellido.Value = objUsuario.USU_primapellido;
            txtSegundoApellido.Value = objUsuario.USU_segapellido;
            TxtTelefono.Value = objUsuario.USU_telefono;
            dlEstadoUsuario.SelectedValue = objUsuario.Estusu_codestado.ToString();
            TxtEmail.Value = objUsuario.USU_email;
            TxtContrasena.Value = objUsuario.USU_contrasena;
            txtDireccion.Value = objUsuario.USU_direccion;
            dlPuesto.SelectedValue = objUsuario.USU_cod_puesto.ToString();
            dlEmpresa.SelectedValue = objUsuario.USU_codempresa.ToString();

        }

        private void Cargar_Combos()
        {
            try
            {
                WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                List<WSGestion.MOD_Usuarios> ListaEstadoUsuario = wsgest.SEL_ESTUSUARIO().ToList();
                this.dlEstadoUsuario.DataSource = ListaEstadoUsuario;
                this.dlEstadoUsuario.DataValueField = "ESTUSU_CODESTADO";
                this.dlEstadoUsuario.DataTextField = "ESTUSU_NOMBRE";
                this.dlEstadoUsuario.DataBind();

                List<WSGestion.MOD_Usuarios> ListaPuestos = wsgest.SEL_PUESTO().ToList();
                this.dlPuesto.DataSource = ListaPuestos;
                this.dlPuesto.DataValueField = "PUE_COD_PUESTO";
                this.dlPuesto.DataTextField = "PUE_DESCRIPCION";
                this.dlPuesto.DataBind();

                List<WSGestion.MOD_Usuarios> ListaEmpresas = wsgest.SEL_EMPRESA().ToList();
                this.dlEmpresa.DataSource = ListaEmpresas;
                this.dlEmpresa.DataValueField = "USU_CODEMPRESA";
                this.dlEmpresa.DataTextField = "EMP_EMPRESA";
                this.dlEmpresa.DataBind();

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }


        }

        protected void btnAgregarUsuario_Click(object sender, ImageClickEventArgs e)
        {
          try
            {
                if (FormAccion == "Agregar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Usuarios Usuario = new WSGestion.MOD_Usuarios();

                    Usuario.USU_nombre = txtNombreusuario.Value;
                    Usuario.USU_primapellido = txtPrimerApellido.Value;
                    Usuario.USU_segapellido = txtSegundoApellido.Value;
                    Usuario.USU_telefono = TxtTelefono.Value;
                    Usuario.USU_contrasena = TxtContrasena.Value;
                    Usuario.USU_direccion = txtDireccion.Value;
                    Usuario.USU_email = TxtEmail.Value;
                    Usuario.USU_cod_puesto = Convert.ToInt32(dlPuesto.SelectedValue.ToString());
                    Usuario.Estusu_codestado = Convert.ToInt32(dlEstadoUsuario.SelectedValue.ToString());
                    Usuario.USU_codempresa = Convert.ToInt32(dlEmpresa.SelectedValue.ToString());

                    int cant_usu = wsgest.SEL_UsuarioByEmail(TxtEmail.Value);
                    if (cant_usu <= 0)
                    {
                        if (wsgest.CRE_Usuario(Usuario))
                        {
                            //Response.Redirect("GridUsuarios.aspx");
                            Server.Transfer("frm_GridUsuarios.aspx");
                        }
                        else
                        {
                            MensajeError = "Procedimiento Almacenado no aceptado";
                        }
                    }
                    else
                    {
                        MensajeError = "El correo electrónico ya existe";
                    }

                }

                if (FormAccion == "Editar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Usuarios Usuario = new WSGestion.MOD_Usuarios();
                    Usuario.USU_codusuario = codigo;
                    Usuario.USU_nombre = txtNombreusuario.Value;
                    Usuario.USU_primapellido = txtPrimerApellido.Value;
                    Usuario.USU_segapellido = txtSegundoApellido.Value;
                    Usuario.USU_telefono = TxtTelefono.Value;
                    Usuario.USU_contrasena = TxtContrasena.Value;
                    Usuario.USU_direccion = txtDireccion.Value;
                    Usuario.USU_email = TxtEmail.Value;
                    Usuario.USU_cod_puesto = Convert.ToInt32(dlPuesto.SelectedValue.ToString());
                    Usuario.Estusu_codestado = Convert.ToInt32(dlEstadoUsuario.SelectedValue.ToString());
                    Usuario.USU_codempresa = Convert.ToInt32(dlEmpresa.SelectedValue.ToString());

                    wsgest.UPD_Usuario(Usuario);
                    //Response.Redirect("GridUsuarios.aspx");
                    Server.Transfer("GridUsuarios.aspx");
                }

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }

        }
        

        protected void btnSalir_Click(object sender, ImageClickEventArgs e)
        {
            Server.Transfer("frm_GridUsuarios.aspx");
        }
    }
}